A video codec is a device or software that enables compression or decompression of digital video (i.e., a digital data stream). Many current video codecs operate on an assumption that the encoded data represents natural or real-world scenes, which are sampled both spatially and temporally. Such scenes present a variety of illumination conditions and may contain multiple objects, each having its own shape and texture. However, these signals in each video frame are usually continuous and follow certain patterns, like a specific power spectrum shape or color distribution. Additionally, since frames may be captured at relatively high speeds, the amount of information introduced in a new video frame is usually small and results from camera or object motion. This spatial and temporal redundancy is exploited by all state-of-the-art video encoders that try to predict a current video frame and encode only the data that cannot be derived from a spatial or temporal neighborhood. Encoding only a difference between the current video frame and its prediction, together with the selected prediction mode, provides significant reduction in bandwidth and storage requirements for the output video stream. Further improvements in video frame prediction would be beneficial to the art.